// 引入router
import router from '@/router'
// 引入store，获取token值
import store from '@/store'

router.beforeEach(async(to, from, next) => {
// 定义白名单：就是这些页面可以没有token值就可以直接访问
  const whiteList = ['/login', '/404']
  // 判断有无token值，两种情况处理
  if (store.getters.token) {
    // 如果是跳转到login页面，就直接跳到首页
    if (to.path === '/login') {
      next('/')
    } else {
      // 先获取到用户数据，再进行跳转
      // 每次点击跳转就获取一次数据，之后再次跳转到这个页面就不再发送请求了
      // 根据userInfo里面的userId来进行判断，如果有id，那么就代表userInfo这个对象就有数据
      // 没有数据就发送请求
      if (!store.state.user.userInfo.userId) {
        await store.dispatch('user/getUserInfo')
      }
      next()
    }
  } else {
    //  跳转白名单内的路由，直接next()
    if (whiteList.includes(to.path)) {
      next()
    } else {
      // 不是白名单内的，就跳到登录页
      next('/login')
    }
  }
})
